#创建类
class CountFromBy:
    #类似于java构造器
    def __init__(self,v:int=0, i:int=1)->None:
        #类的全局变量var初始化
        self.var = v
        self.incr = i
    def increase(self)->None:
        self.var+=self.incr

    ##通过重载repr内置方法，使打印对象时直接打印对象的var值
    def __repr__(self) -> str:
        return str(self.var)




if __name__ == '__main__':
    #定义类的实例并初始化
    g = CountFromBy(2,10)
    #调用类的方法
    g.increase()
    #打印类的变量
    print(g.var)
    print(g.incr)
    #打印对象的实例信息，用内置函数type，内置函数在python中称为BIF
    print('打印对象实例信息',type(g))
    #用内置函数id获取对象的唯一标识
    print('对象的唯一标识，类似于java中的hashCode',id(g))
    print('对象的唯一标识，类似于java中的hashCode',hex(id(g)))
    #用__repr__魔法方法覆盖默认行为，通过注释掉上面类中的__repr__方法观察打印有什么不同
    print(g)


#page327
